home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The 640 MEG Shareware Studio 1
/
The 640 Meg Shareware Studio CD-ROM Volume I (Data Express)(1992).ISO
/
utility
/
boot142.exe
/
BOOT.DOC
< prev
next >
Wrap
Text File
|
1991-07-03
|
111KB
|
2,602 lines
BOOT.SYS(tm) - Version 1.42
Use boot-up menus to select your MS-DOS system configuration
_______
____|__ | (R)
--| | |-------------------
| ____|__ | Association of
| | |_| Shareware
|__| o | Professionals
-----| | |---------------------
|___|___| MEMBER
Written by Hans Salvisberg
BOOT.SYS - 2 - Version 1.42
Copyright Notice
BOOT.SYS(tm) and the accompanying programs and documentation are
Copyright (c) 1989, 1990, 1991 Hans Salvisberg
All rights reserved
Table of Contents
Introduction ............................................... 4
About ASP .................................................. 5
ASP Ombudsman Information .................................. 6
License Agreement .......................................... 6
Registration ............................................... 8
Installation ............................................... 10
Quick Start .............................................. 11
Level 1: One Menu ........................................ 12
BOOT.SYS Command Line Parameters ......................... 17
The BOOT.SET Command and Environment Variables ........... 18
General Introduction to DOS Environment Variables ..... 18
Using Environment Variables with BOOT.SYS ............. 20
Trouble-shooting Variable Problems .................... 21
Level 2: Several Independent Menus Following Each Other .. 22
Level 3: Nested Menus .................................... 24
Controlling the DOS= Command in MS/PC-DOS 5.00 ........... 30
General Introduction .................................. 30
BOOT.SYS and the DOS= Command ......................... 32
DOS= Summary .......................................... 32
BOOT.SYS Extensions ...................................... 33
BOOT.EDIT ............................................. 33
BOOT.OPTION FREE ...................................... 34
BOOT.OPTION BOOTASSIST ................................ 35
BOOT.OPTION EXTMON for Laptops ........................ 36
BOOT.OPTION COLOR ..................................... 38
BOOT.COM Command Line Parameters ......................... 38
BOOT.SYS - 3 - Version 1.42
PAUSE.SYS, a Debugging Aid ............................... 40
Closing Remark ........................................... 41
Answers to Common Questions ................................ 42
Revision History ........................................... 46
BOOT.SYS - 4 - Version 1.42
Introduction
BOOT.SYS makes it possible to display one or more menus at
boot-up time and to have different parts of CONFIG.SYS and/or
AUTOEXEC.BAT executed depending on which menu options are chosen.
Many people need different versions of CONFIG.SYS depending on
what application they are going to run. In the past you had to
either rename or edit your start-up files and reboot to get a
different setup. Now this process has become much easier and
safer by using BOOT.SYS.
BOOT.SYS was written for IBM-compatible Personal Computers run-
ning under MS-DOS or PC-DOS 2.11 to 5.00. There are no other
system requirements.
The following features make BOOT.SYS a must-have for every
sophisticated PC installation:
* easy installation, detailed examples for every level of
sophistication
* up to nine options per menu (one line per option) and a
freely definable prompt area at the top of the screen
* up to 25 consecutive menus, each defining a different aspect
of your system configuration
* up to 25 levels of nested menus (submenus), simplifying a
systematic approach to systems configuration
* only one version of CONFIG.SYS and AUTOEXEC.BAT; no copy-
ing/renaming of files and no rebooting
* select menu options by pressing the corresponding digit key
or by moving an arrow
* user-definable timeout and default option for each menu
* full support for DOS= and the other new commands in MS/PC-DOS
5.00
* switch to an external monitor on boot-up for some laptop
computers
* edit individual CONFIG.SYS lines on the fly while booting up
* typically uses less than 200 bytes of resident DOS memory
* do a warm or a cold boot from the DOS command line or from a
batch file; change Alt-Ctrl-Del to do a cold boot or disable
it altogether
* includes PAUSE.SYS for debugging complex CONFIG.SYS setups
BOOT.SYS - 5 - Version 1.42
Acknowledgments
BOOT.SYS(tm) was developed using Borland's Turbo C(R), Turbo
Assembler(R), and Turbo Debugger(R), as well as the Periscope(R)
debugger by The Periscope Company. The documentation was written
with Lotus Manuscript(R).
Many thanks to Michael J. Mefford of PC Magazine who has provided
valuable information about modifying CONFIG.SYS on the fly.
Many thanks to the members of the ASP; their help and advice have
been invaluable for getting BOOT.SYS to you.
Trademarks
BOOT.SYS is a trademark of Hans Salvisberg.
Compaq is a trademark of Compaq Computer Corporation. IBM, PC-DOS
and PC are trademarks of IBM Corporation. MS-DOS and MS Windows
are trademarks of Microsoft Corporation. 386MAX is a trademark of
Qualitas, Inc. DESQview and QEMM386 are trademarks of Quarterdeck
Office Systems. 4DOS is a trademark of JP Software. Other product
names mentioned in this documentation may be trademarks of these
or other companies.
Association of Shareware Professionals and the ASP logo are
trademarks of the Association of Shareware Professionals.
About ASP
ASP, the Association of Shareware Professionals(R), was formed in
April 1987 to strengthen the future of shareware (user supported
software) as an alternative to traditional commercial software.
Its members, all of whom are programmers subscribing to a code of
ethics or non-programmers sincerely interested in the advancement
of shareware, are committed to the concept of shareware as a
method of marketing.
The ASP has adopted general standards that all ASP authors have
agreed to follow, some of which are:
Support standards:
All ASP members' shareware products must provide support (in-
cluded in the purchase price) for a minimum of three months
from the date of registration.
Any money sent to an author to register an unsupported prod-
uct shall be promptly returned with an explanation that the
product in question is no longer supported.
Known incompatibilities with other software or hardware and
major or unusual program limitations are noted in the docu-
mentation that comes with the shareware (evaluation) program.
BOOT.SYS - 6 - Version 1.42
'no crippling' standard:
The principle behind shareware is "try before you buy." ASP
believes that users have a right to try a fully functioning
shareware program in their regular computing environment.
Accordingly, ASP authors agree that:
- The executable files (and/or items linked in with execut-
ables) in the shareware and registered versions will
essentially be the same.
- All the program's features will be fully documented.
- Registration encouragement procedures which in the judg-
ment of the Board are either unreasonable or unprofes-
sional are not allowed.
Miscellaneous standards:
The program has been thoroughly tested by the author and
should not be harmful to other files or hardware if used
properly.
Any discussion of the shareware concept and of registration
requirements is done in a professional and positive manner.
If you are interested in ASP and in Shareware issues, you are
invited to come to the SHAREWARE forum on CompuServe, where many
shareware authors meet regularly.
ASP Ombudsman Information
This program is produced by a member of the Association of Share-
ware Professionals (ASP). ASP wants to make sure that the share-
ware principle works for you. If you are unable to resolve a
shareware-related problem with an ASP member by contacting the
member directly, ASP may be able to help. The ASP Ombudsman can
help you resolve a dispute or problem with an ASP member, but
does not provide technical support for members' products. Please
write to the ASP Ombudsman at 545 Grover Road, Muskegon, MI
49442-9427, U.S.A. or send a message via CompuServe Mail to ASP
Ombudsman 70007,3536
License Agreement
BY INSTALLING BOOT.SYS ON YOUR SYSTEM YOU INDICATE YOUR AGREEMENT
TO THE FOLLOWING TERMS AND CONDITIONS. IF YOU DO NOT AGREE TO
THEM YOU ARE NOT ALLOWED TO USE THIS PROGRAM.
BOOT.SYS AND THE ACCOMPANYING PROGRAMS AND DOCUMENTATION (LATER
ON COLLECTIVELY REFERRED TO AS BOOT.SYS) ARE DISTRIBUTED AS IS.
HANS SALVISBERG (THE AUTHOR) MAKES NO WARRANTY OF ANY KIND,
EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT
TO THIS SOFTWARE AND DOCUMENTATION. IN NO EVENT SHALL THE AUTHOR
BE LIABLE FOR ANY DAMAGES, INCLUDING LOST PROFITS, LOST SAVINGS,
BOOT.SYS - 7 - Version 1.42
OR ANY OTHER INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
THE USE OF OR THE INABILITY TO USE THIS PROGRAM, EVEN IF THE
AUTHOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR
FOR ANY CLAIM BY ANY OTHER PARTY.
BOOT.SYS is a copyrighted work protected by Swiss, U.S., and
international copyright law. It is not free, freeware, or in the
public domain. It is distributed as Shareware, which means that
you may try it out at no cost for three weeks; if you determine
that it fits your needs and you wish to use it regularly, you
must register. If you choose not to pay the registration fee, you
must stop using BOOT.SYS after the initial trial period and
remove it from your computer, but you may still keep copies of it
and pass them on to others as outlined below.
You may give individual copies of the unregistered version of
BOOT.SYS to your friends and associates for evaluation purposes
as described above. You must include all the files (described in
the READ.ME file) that make up BOOT.SYS without any modifica-
tions, preferably in the original self-extracting LHarc archive
file. You may upload BOOT.SYS to the public section of a public
BBS, but you may not place it in any user group or commercial
library or distribute it for a fee or in any way sell copies of
it without express written permission from the Author.
Under no circumstances may an unregistered version of BOOT.SYS be
used in a commercial (business, corporate, government, educa-
tional, or other institutional) environment except for the pur-
pose of evaluation on a single computer.
You may not modify or dis-assemble BOOT.SYS, nor distribute any
modified or dis-assembled versions of BOOT.SYS. BOOT.SYS may not
be included (bundled) with any other product for any reason what-
soever without prior written permission from the Author.
You may install your registered copy of BOOT.SYS on more than one
computer at a time ONLY if no more than one of these computers is
usually running at the same time. You may make as many backup
copies of BOOT.SYS as you need for your personal backup purposes.
You may NOT give, sell, lend, or otherwise transfer copies of the
registered version of BOOT.SYS to any other person for any rea-
son. Registered copies of BOOT.SYS have a unique registration
number and display your name and address. Your registration,
including that information, are transferable to future Shareware
versions of BOOT.SYS, which will then be considered registered
versions.
No version of BOOT.SYS may be rented or leased.
Any use or distribution of BOOT.SYS, which violates this license
agreement, will be considered a copyright violation, and may be
prosecuted to the full extent of the law.
BOOT.SYS - 8 - Version 1.42
U.S. Government RESTRICTED RIGHTS: Use, duplication, or disclo-
sure by the Government is subject to restrictions as set forth in
subdivision (b)(3)(ii) of the Rights in Technical Data and
Computer Software clause at 252.227-7013.
Registration
BOOT.SYS is not free! You may try it out at no charge for an
initial trial period to determine if it fits your needs. If you
want to continue using BOOT.SYS after the initial trial period
you must register. This method of software distribution is known
as Shareware.
The registration fee for a single copy of BOOT.SYS is SFR 70.- +
s&h (exchange rate US$ to Swiss Francs is about $0.63 = SFR 1.-
(July 1991)) for registration with the author in Switzerland or
$39 US + s&h for registration with PsL in the U.S.A.
Payment of the single-copy registration fee entitles you to the
following benefits:
* A disk with the current version of BOOT.SYS
* A printed and bound manual
* A special utility program that lets you transfer your license
to any later shareware versions of BOOT.SYS that you may
obtain from any shareware source (getting an upgrade from the
author requires new registration).
* Free support (by electronic mail or by mail) for the first 90
days after payment, consisting of answering questions and
fixing any reproducible program error(s) that interfere(s)
with the intended use of the program as outlined in this
documentation. The author may choose not to fix problems
related to a special hardware and/or software configuration
and will then arrange for a refund of the registration fee,
if the problem is reported within 90 days of payment. The
author makes no other warranties, expressed or implied, and
this warranty is expressly limited to the cost of the regis-
tration fee.
* BOOT.SYS is publicly supported on CompuServe in the DOS Uti-
lities section of the IBMSYS forum. A free CompuServe Intro-
Pak, which includes a $15.00 usage credit, is available to
registered BOOT.SYS users who do not yet subscribe to
CompuServe. CompuServe will open the door for a whole new
world of information, services, and interesting people. Com-
puServe is also the best place to obtain technical support
for products from Hans Salvisberg (and many other developers
and vendors). The CompuServe IntroPak (a $39.95 value) is
provided to registered BOOT.SYS users compliments of Compu-
BOOT.SYS - 9 - Version 1.42
Serve, Inc., and Hans Salvisberg. This offer is dependent on
its continued availability from CompuServe, Inc.
For your information: Current CompuServe rates are $12.50 per
connect hour plus communications surcharges (e.g., $0.30/hour
in the U.S.A., $9.50/hour in Switzerland and the United King-
dom, varying rates in other countries).
Note: All prices and terms are subject to change without notice.
BOOT.SYS must be registered before it is used in a commercial
(business, corporate, government, educational, or other institu-
tional) environment beyond initial evaluation or on more than one
computer.
There are no quantity discounts available for BOOT.SYS, because
it does not make sense to purchase a large number of single-PC
licenses. However, site licenses for installing BOOT.SYS on mul-
tiple computers are available starting at 2 PCs. Please refer to
the accompanying file SITELICE.DOC for details.
The accompanying file REGISTER.FRM includes registration forms
for registering single-PC copies of BOOT.SYS.
If any of these files are missing or if you have any questions,
please contact the author:
Hans Salvisberg, Bellevuestr. 18, CH-3095 Berne, SWITZERLAND
CompuServe: 73237,3556
Internet: 73237.3556@compuserve.com
BOOT.SYS - 10 - Version 1.42
Installation
BOOT.SYS can be used on three different levels:
- one menu only
- several menus in sequence
- nested menus
It is probably a good idea to start experimenting with BOOT.SYS
on the easiest level and to build up from there. This is also how
the installation instructions will be presented here. Alterna-
tively, if you already have (up to nine) pairs of AUTOEXEC.BAT
and CONFIG.SYS files, you can use the procedure outlined in the
Quick Start chapter to get BOOT.SYS working right away.
Please keep in mind that heavily editing CONFIG.SYS and AUTOEX-
EC.BAT may lead to your PC not coming up in the usual configura-
tion or even locking up at boot-up time. Therefore it is
recommended that you first create a bootable diskette by
following these steps (at the DOS prompt):
1. Insert a new diskette in drive a: and FORMAT a: /S
2. COPY c:\COMMAND.COM a:
3. COPY c:\CONFIG.SYS a:
4. COPY c:\AUTOEXEC.BAT a:
5. Edit a:AUTOEXEC.BAT and a:CONFIG.SYS and make sure that all
file names (including the external DOS commands) include the
drive name of your boot disk (here assumed to be c: ).
6. Boot from this diskette to see if everything is ok; check if
you can start your editor as usual.
Many of the features of BOOT.SYS will be presented by examples.
In each chapter there is a simple example to start with and some
more interesting ones to give you an idea of what BOOT.SYS can
do. The upper-case portions should be copied exactly (case does
not matter), the lower-case ones may be different for your sys-
tem.
Example:
DEVICE=c:\dos\ANSI.SYS
The ANSI.SYS device driver that comes with DOS is often located
in the directory \dos on drive c: ; if this is not the case on
your system then you should change the drive and/or path accord-
ingly.
The first example on each level will use DOS features only, so it
should work on every system running under MS-DOS or PC-DOS. Usu-
ally there is a CONFIG.SYS file (CO) and an AUTOEXEC.BAT file
(AU) for each example.
All text in curly braces (like {a comment}) is comment and should
be omitted.
BOOT.SYS - 11 - Version 1.42
Quick Start
If you already have (up to nine) pairs of different CONFIG.SYS
and AUTOEXEC.BAT files, you can start using BOOT.SYS right away
by following these instructions:
1. Create a new master CONFIG.SYS like this:
CO DEVICE=c:\bin\BOOT.SYS
DEVICE=BOOT.1 1st configuration {any name}
DEVICE=BOOT.SET boot=config1 {use a meaningful name,
e.g. Windows}
{entire content of CONFIG.SYS for the 1st configuration}
DEVICE=BOOT.2 2nd configuration {any name}
DEVICE=BOOT.SET boot=config2 {again, use an appropri-
ate name}
{entire content of CONFIG.SYS for the 2nd configuration}
{etc.}
DEVICE=BOOT.END
2. Create a new AUTOEXEC.BAT like this (make sure that there
are no duplicate labels in different sections):
AU c:\bin\BOOT SET
IF ERRORLEVEL 10 GOTO not_installed
GOTO %boot%
:config1 {use the same name here as in CONFIG.SYS}
{entire content of AUTOEXEC.BAT for the 1st configura-
tion}
GOTO done
:config2 {use the same name here as in CONFIG.SYS}
{entire content of AUTOEXEC.BAT for the 2nd configura-
tion}
GOTO done
{etc.}
:not_installed
echo BOOT.SYS is not installed
:done
3. Press Alt-Ctrl-Del to reboot and watch BOOT.SYS in
action.(1)
The real power of BOOT.SYS, which comes into play when you use
multiple or even nested menus, is not used here, but this setup
may be sufficient for many users' needs. The next chapters will
explain how and why to create more sophisticated setups.
--------------------
1 If you see messages like 'Unrecognized command' from CON-
FIG.SYS, please refer to the chapter <<Answers to Common
Questions>>.
BOOT.SYS - 12 - Version 1.42
Level 1: One Menu
For many users one menu is all they will ever need. It gives you
the equivalent of choosing between up to nine different sets of
CONFIG.SYS and AUTOEXEC.BAT.
Ex Choose between one of the [SCREEN]
1.1(1) following configurations:
- no RAM disk
- 64K RAM disk
- 128K RAM disk
If there's a RAM disk, copy
COMMAND.COM to it and make
DOS reload the command pro-
cessor from there.
CO.11 BUFFERS=32
FILES=20
{any other of the usual commands that should apply to all
the configurations; this goes for all the examples}
DEVICE=c:\bin\BOOT.SYS {optional command line parameters}
DEVICE=TOP
DEVICE=TOP Select one of the following choices by
DEVICE=TOP pressing the corresponding digit key, or by
DEVICE=TOP moving the arrow with the Cursor-Up, Cursor-
DEVICE=TOP Down, Home and End keys and pressing Enter
DEVICE=TOP (or Cursor-Right):
DEVICE=TOP
DEVICE=BOOT.1 no RAM disk
DEVICE=BOOT.SET boot=no_vdisk
DEVICE=BOOT.2 64K RAM disk
DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
DEVICE=BOOT.SET boot=vdisk
--------------------
1 The screen shots are deliberately reproduced in a small scale.
They are intended to provide a view of the general screen layout
only; for the text please refer to the corresponding CONFIG.SYS
listing. In the Shareware documentation they are omitted.
BOOT.SYS - 13 - Version 1.42
DEVICE=BOOT.3 128K RAM disk
DEVICE=c:\dos\VDISK.SYS size=128 sector=512 dir=64
DEVICE=BOOT.SET boot=vdisk
DEVICE=BOOT.END
{any other of the usual commands that should apply to all
the configurations; this goes for all the examples}
AU.11 c:\bin\BOOT SET
IF ERRORLEVEL 10 GOTO not_installed
GOTO %boot%
:vdisk
COPY c:\COMMAND.COM d:
SET COMSPEC=d:\COMMAND.COM
GOTO done
:no_vdisk
ECHO Sorry, there is no RAM disk
GOTO done
:not_installed
ECHO BOOT.SYS is not installed!
:done
PATH c:\dos;c:\bin
The part of CONFIG.SYS that is controlled by BOOT.SYS starts with
the BOOT.SYS line and ends with the BOOT.END line. Between these
two lines you define the menu to be displayed as well as the
commands to be executed for each menu option.
The text to the right of TOP is displayed at the top of the menu
screen. You may use most of the characters of the PC character
set (including the box and foreign characters). Unfortunately DOS
converts all lower-case characters in the range of 'a' to 'z' to
upper case(1); a work-around to this problem is presented in the
next example. There is no upper limit to the number of TOP lines,
as long as they fit on the screen, along with all the options;
TOP may be omitted altogether and BOOT.SYS will display a default
text.
--------------------
1 This applies to the BOOT.SET command as well.
BOOT.SYS - 14 - Version 1.42
The BOOT.1 line introduces the first menu option. All text to the
right of BOOT.1 is displayed as the option text. Between BOOT.1
and BOOT.2 there may be zero or more of the usual CONFIG.SYS
commands (all kinds, not just DEVICE= ). These commands will be
executed if the user selects option 1 and will be bypassed
silently otherwise.
The BOOT.SET line is an instruction to BOOT.SYS to define a DOS
environment variable that can be used later on in AUTOEXEC.BAT.
It is explained in detail in <<The BOOT.SET Command and Environ-
ment Variables>>.
There may be up to nine options each beginning with a correspond-
ing BOOT.n line. The options must be numbered consecutively from
1 up to 9.
You may insert empty lines and comment lines ( REM ) wherever you
like; REM was introduced with DOS 4.00, for older versions you
can insert comments between BOOT.SYS and BOOT.END like this:
DEVICE=REM any comment
So much for the CONFIG.SYS part of our first BOOT menu; even if
you think you know enough already you should read on, up to the
end of the next section.
Very often different commands must be executed in AUTOEXEC.BAT
depending on which boot-up configuration is selected. It is even
possible that all your configurations use the same CONFIG.SYS
commands and differ only in the contents of AUTOEXEC.BAT (see
example 1.2). This can be done by defining one or more variables
in CONFIG.SYS, which are kept in the very small part of BOOT.SYS
that stays resident.
Calling the companion program BOOT.COM with the SET parameter in
AUTOEXEC.BAT copies the variables from the resident BOOT.SYS to
the DOS environment, where they can be used like any other envi-
ronment variables defined with the SET , PATH , or PROMPT com-
mands in DOS(1). If BOOT.COM cannot find the resident driver, it
displays an error message and returns an ERRORLEVEL of 10.
There are many ways to use environment variables, e.g. as labels
in GOTO statements, to conditionally execute commands or GOTOs
in IF statments, as program parameters, or even to branch to
different batch files. There is a short introduction to the use
of environment variables in <<The BOOT.SET Command and Environ-
ment Variables>>.
--------------------
1 In short: if there is a variable definition name=value and you
put %name% anywhere in a batch file, then DOS will replace %name%
with value . If the variable name is not defined, then DOS will
simply remove %name% .
BOOT.SYS - 15 - Version 1.42
Ex 1.2 On a certain LAN you may want [SCREEN]
to choose between the follow-
ing options:
- no network support
- XNS protocol
- TCP/IP protocol
Display the menu white on
blue, use both upper-case and
lower-case letters, and rear-
range the menu on the screen.
CO.12 DEVICE=c:\bin\BOOT.SYS /CX1f /L18 /U^
DEVICE=TOP
DEVICE=TOP
DEVICE=TOP ^What kind of network support do you need?
DEVICE=TOP
DEVICE=TOP
DEVICE=TOP
DEVICE=BOOT.1 none
DEVICE=BOOT.2 ^X^N^S
DEVICE=BOOT.SET net=xns
DEVICE=BOOT.3 ^T^C^P/^I^P
DEVICE=BOOT.SET net=tcp
DEVICE=BOOT.END
AU.12 ECHO OFF
CLS
c:\bin\BOOT SET >NUL: {>NUL: hides BOOT.COM's
IF "%net%" == "" GOTO no_net output}
auto%net%
:no_net
PATH c:\dos;c:\bin
The command line parameters will cause BOOT.SYS to use the /Color
1f (heX), to put 18 spaces to the /Left of the option numbers,
and to indent the TOP text just insert spaces in these lines.
BOOT.SYS will translate all characters in the range of 'a' to 'z'
to lower case except for those preceded by a '^' character (or
any other you specify) which will be displayed in /Upper case.
This LAN does not need any drivers in CONFIG.SYS, so the options
are empty except for the BOOT.SET commands. If the user selects
BOOT.SYS - 16 - Version 1.42
either XNS or TCP/IP then AUTOEXEC.BAT branches to autoxns.bat or
autotcp.bat respectively(1), which will load the necessary driv-
ers.
This example demonstrates how to control the appearance of the
menus by using additional empty TOP lines, indenting the text on
the TOP lines, and using the /Left switch. There is also a /Spac-
ing switch which indicates the spacing between the menu options;
the default is 2, acceptable values are 1, 2, etc., as long as
all the menu options fit on the screen. - For the sake of brevity
the remaining examples are not optimized for good looks, and the
/Uppercase switch will be omitted, too.
Ex 1.3 Choose
- whether you want a RAM disk, and
- whether you need ANSI.SYS.
If the user does not press any key within 5 seconds then
take the default of RAM disk and no ANSI.SYS.
CO.13 DEVICE=c:\bin\BOOT.SYS /D2 /T5
DEVICE=TOP Select your system configuration
DEVICE=BOOT.1 no RAM disk, no ANSI.SYS (all RAM above DOS
available)
DEVICE=BOOT.2 64K RAM disk, no ANSI.SYS
DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
DEVICE=BOOT.3 no RAM disk, ANSI.SYS
DEVICE=c:\dos\ANSI.SYS
DEVICE=BOOT.4 64K RAM disk and ANSI.SYS
DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
DEVICE=c:\dos\ANSI.SYS
DEVICE=BOOT.END
The command line parameters will cause BOOT.SYS to /Timeout after
5 seconds and continue the boot process using the /Default option
#2. Other command line parameters will be introduced in the next
section.
--------------------
1 When execution is transferred to another batch file (without
the CALL statement introduced in DOS 3.30) it does not return,
i.e. the rest of the calling batch file is not executed.
BOOT.SYS - 17 - Version 1.42
This example proves that one menu is not enough when you need to
make more than one independent decision. Just imagine you would
also like to specify whether to load your keyboard macro program
or not: this would take another four options! Example 2.1 will
show a better solution.
BOOT.SYS Command Line Parameters
Most of the command line parameters of BOOT.SYS have already been
introduced informally and they are explained in detail in this
chapter.(1)
/CXhh Color to be used for the menu, usually specified by two
/Cn hexadecimal digits hh ; if you prefer you may use the
decimal equivalent n instead. The values for hh can be
taken from the following table (the background gives the
first and the foreground the second digit):
color background foreground
normal bright
black 0? ?0 ?8
blue 1? ?1 ?9
green 2? ?2 ?A
cyan 3? ?3 ?B
red 4? ?4 ?C
magenta 5? ?5 ?D
brown 6? ?6 ?E
white 7? ?7 ?F
For monochrome systems use one of the following values:
02 =normal, 2F =high intensity, 70 =reverse video (hexa-
decimal).
Default value: /CX2F (bright white on green)
/Dd Default option: the arrow will point to that option and
if there is a timeout specified then that option will be
chosen.
Default value: /D1
/Ln Number of positions to indent the option numbers from
the left edge of the screen.
Default value: /L5
/N+ Turn NumLock on or off, for those who use the numeric
/N- keypad to select options.
/P Display the menu identifier in the lower right corner of
the screen. This may be useful for setting up, debug-
ging, and discussing complex menu systems and it is
explained in example 3.1.
--------------------
1 You may use '-' instead of '/' as the switch character.
BOOT.SYS - 18 - Version 1.42
/Sn Spacing between the option lines.
Default value: /S2 (double-spaced)
/Tn Timeout: If the user does not press any key within n
/T-n seconds (or n clock ticks for /T-n , 18.2 ticks per
second), then execution continues with the default
option. Pressing any key within the specified time dis-
ables the timeout.
/T0 is legal; BOOT.SYS will check if there is a key code
waiting in the keyboard buffer and continue immediately
if the buffer is empty. Most BIOSes accept key presses
right after the initial beep.
/T No timeout; this is the default.
/Uc Shift character: All characters preceded by c will be
displayed in upper case, all others in lower case. This
applies to the letters 'a' to 'z' on the TOP and BOOT.n
lines. To display a c on the screen, write cc .
There is no default value for c ; /U^ or /U~ are good
choices.
/Uct Shift and toggle character (analogous to Shift and Caps-
Lock on your keyboard):
If this parameter is specified, all lines start out in
lower case, t changes case permanently and c only for
the next character.
Example with /U^\ : lower\UPPER\lower^Proper\IM^pROPER
Use tt or ct to display a t .
/U All characters 'a' to 'z' will be upper-case. This is
the default.
The BOOT.SET Command and Environment Variables
General Introduction to DOS Environment Variables
The command processor of MS/PC-DOS maintains a special storage
area called the environment, which contains any number of charac-
ter strings (called variables) of the form
NAME=value
Every variable has a name, usually composed of upper-case alpha-
numeric characters, and a value, mixed-case and sometimes even
with embedded space characters. DOS automatically defines a
variable called COMSPEC that points to the command processor
file, and you usually define at least another variable called
PATH in AUTOEXEC.BAT. At the DOS prompt enter the command
SET
and you will see something like
COMSPEC=C:\DOS\COMMAND.COM
PATH=c:\dos;c:\util;c:\myapp
BOOT.SYS - 19 - Version 1.42
The SET command lets you look at the environment, and it also
lets you define variables like this (try it!):
SET test=ok
Again, enter SET without anything else on the line to display the
environment, and you will see:(1)
COMSPEC=C:\DOS\COMMAND.COM
PATH=c:\dos;c:\util;c:\myapp
TEST=ok
Two special environment variables ( PATH and PROMPT ) are so
important for DOS that they each have a DOS command with the same
name, but they can easily be manipulated with the general-purpose
SET command as well.
The primary use of environment variables for our purposes is in
batch files: Whenever you enclose a variable name with two per-
cent signs DOS will replace the name and the percent signs with
the value of the variable. If there is no variable of that name
the space will be empty. The following are a few examples of how
this could be used in a batch file:
GOTO %test% {jump to label "ok"}
ECHO The value of TEST is %test%. {simple string substi-
tution, useful for
debugging}
EDIT %test% {command parameter}
%test% {execute the command or
batch file called ok}
IF "%test%" == "ok" GOTO continue {string comparisons}
IF NOT "%test%" == "" CALL doit.bat
The use of double quotes in the last two examples is mandatory
for two reasons:(2)
- If the variable does not exist, " IF %test% == " would lead
to a syntax error because DOS cannot handle the resulting
--------------------
1 There are certain DOS shells, e.g. Norton Commander, that
ignore the SET command, i.e. you cannot change the environment.
Just exit the shell and SET should work as indicated.
The environment has a pre-defined fixed size, and if you try to
define more (or longer) variables than will fit, DOS displays an
error message similar to " Out of environment space " and ignores
the command. If this happens to you, please refer to your DOS
manual (SHELL= command in CONFIG.SYS) or ask an experienced user
for help.
2 There are other less general ways to get similar results, but
the double quotes will work most of the time.
BOOT.SYS - 20 - Version 1.42
" IF == ".
- If the value has embedded spaces, then the double quotes are
needed to keep it together as a single piece of information.
Warning: DOS lets you use SET with all kinds of parameters as
long as there is an equal sign somewhere on the line, and it
literally copies to the environment whatever is on the command
line. Many of these 'variable definitions' are not usable in
batch files; the most common error is:
SET test = not_ok
Enter SET to see:
COMSPEC=C:\DOS\COMMAND.COM
PATH=c:\dos;c:\util;c:\myapp
TEST=ok
TEST = not_ok
The spaces on both sides of the equal sign have become part of
the variable name and value. This is probably not what you
intended, and DOS will not recognize " %test % " with an embedded
space as a valid variable name.
Lastly, you can delete variable definitions as follows:
SET test=
This removes the good version of our TEST variable (verify it!).
Note: 4DOS, an alternative command processor by JP Software,
enhances the functionality of COMMAND.COM and DOS in general in
just about every way, and it also includes much more powerful
environment variable support.
Using Environment Variables with BOOT.SYS
BOOT.SYS lets you define a variable in CONFIG.SYS by including
the following statement between the BOOT.SYS and BOOT.END lines
(wherever a normal CONFIG.SYS command is legal):
DEVICE=BOOT.SET name=value
To define more than one variable just use BOOT.SET multiple
times.(1) The variable definitions are stored in the resident
part of BOOT.SYS which will grow accordingly.
In AUTOEXEC.BAT (or from the DOS command line) you must execute
BOOT SET
--------------------
1 You could even set the PROMPT and the PATH with BOOT.SET .
BOOT.SYS - 21 - Version 1.42
to copy the variable definitions into the DOS environment where
they can be used like any other environment variables. If you
want, you can free up the environment space taken by these vari-
ables later on with the command(1):
BOOT CLEAR
BOOT.SET is modeled closely after the SET command in DOS and it
accepts just about anything as a variable definition. Not all
such definitions will be usable in DOS.(2)
The variable name is always translated to upper case; by default
the value is translated as well, but if you need lower-case char-
acters, you can use the /Upper-case switch as follows:(3)
DEVICE=BOOT.SET /U^ name=^Value
Trouble-shooting Variable Problems
If you are having problems with BOOT.SET :
- Use the DOS-internal SET command without any parameters to
display the current contents of the environment.
- Try to define the variables from the DOS command line with
the DOS-internal SET command.
- Keep in mind that extraneous spaces to the left or the right
of the equal sign are stored as part of the name or value,
respectively.
- To make comparisons with possibly empty strings or with
strings containing spaces you must use double quotes as
shown in the previous section.
- You may want to set default values for certain variables
with BOOT.0.(4)
- You may need to increase the size of the DOS environment if
you use many and/or long variable definitions; BOOT.SYS will
display appropriate directions for your version of DOS.
--------------------
1 You cannot regain the space used by the resident part of
BOOT.SYS, but this is typically very small, i.e. less than 200
bytes.
2 See the warning in the previous section.
3 /U is fully explained in <<BOOT.SYS Command Line Parameters>>.
4 BOOT.0 is explained in Example 2.2.
BOOT.SYS - 22 - Version 1.42
Level 2: Several Independent Menus Following Each Other
Example 1.3 showed that there are situations where you need more
than one menu: whenever you have to make several independent
decisions.
Ex 2.1 Choose
- whether you want a RAM disk, and
- whether you need ANSI.SYS.
If the user does not press any key within 5 seconds then
take the defaults of RAM disk and no ANSI.SYS.
[SCREEN] [SCREEN]
CO.21 DEVICE=c:\bin\BOOT.SYS /T5
DEVICE=BOOT.A /D2
DEVICE=TOP Do you need a RAM disk?
DEVICE=BOOT.1 no
DEVICE=BOOT.2 yes, 64K RAM disk
DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
DEVICE=BOOT.SET VDISK=D
DEVICE=BOOT.B /D1
DEVICE=TOP Do you need ANSI.SYS?
DEVICE=BOOT.1 no
DEVICE=BOOT.2 yes, ANSI.SYS
DEVICE=c:\dos\ANSI.SYS
DEVICE=BOOT.Z {this line is optional, omit it!}
DEVICE=BOOT.END
AU.21 c:\bin\BOOT SET
IF ERRORLEVEL 10 GOTO not_installed
IF "%VDISK%" == "" ECHO Sorry, there is no RAM disk
IF NOT "%VDISK%" == "" COPY c:\COMMAND.COM %VDISK%:
IF NOT "%VDISK%" == "" SET COMSPEC=%VDISK%:\COMMAND.COM
GOTO done
:not_installed
ECHO BOOT.SYS is not installed!
:done
BOOT.SYS - 23 - Version 1.42
PATH c:\dos;c:\bin
The first menu is introduced by the BOOT.A line, the second by
BOOT.B , etc., up to BOOT.Y , giving you a maximum of 25 menus.
The BOOT.Z line is optional and should be omitted here for better
error checking; its use will become clear with Example 3.1.
The command line parameter /T sets a timeout value of 5 seconds
for all menus. Alternately, command line parameters may be speci-
fied on the BOOT.A , etc., lines, and apply only to that menu,
such as /D in this example. Actually both can be combined: The
parameters on the BOOT.SYS line set the defaults which can be
changed for specific menus.
Sometimes the loading order of different device drivers may be
important. Thus it is possible that a device driver must be
loaded between two menus. This can be done with the following
extension:
CO.22 DEVICE=c:\bin\BOOT.SYS /T5
DEVICE=BOOT.A /D2
DEVICE=TOP Do you need a RAM disk?
DEVICE=BOOT.0
{device drivers}
DEVICE=BOOT.1 no
DEVICE=BOOT.2 yes, 64K RAM disk
DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
DEVICE=BOOT.SET VDISK=D
DEVICE=BOOT.0
{device drivers}
DEVICE=BOOT.B /D1
DEVICE=TOP Do you need ANSI.SYS?
DEVICE=BOOT.1 no
DEVICE=BOOT.2 yes, ANSI.SYS
DEVICE=c:\dos\ANSI.SYS
DEVICE=BOOT.END
BOOT.SYS - 24 - Version 1.42
In each menu the first option may be preceeded and/or the last
option followed by BOOT.0 ; any device drivers (or other com-
mands) listed under this 'option' are always loaded/executed when
this menu is displayed at all.
Note: It is easiest to picture BOOT.SYS as 'executing' the com-
mands under the first BOOT.0 , followed by menu A and the com-
mands under the second BOOT.0 , and finally 'executing' menu B .
In fact this is not correct! DOS begins by executing the commands
up to and including BOOT.SYS . At this point BOOT.SYS takes over
and processes all menus down to BOOT.END . Processing a menu
means that the user selects one of the options, and BOOT.SYS
wipes out the menu definition lines and the command lines of the
other options. When BOOT.SYS has processed the last menu, DOS
comes in again and executes the commands that BOOT.SYS has not
wiped out, including the ones after BOOT.END .
Level 3: Nested Menus
For a sophisticated system configuration it may be desirable to
have nested menus. This leads to a logical extension of level 2:
within any option you can embed an entire sequence of submenus.
Example 3.1 may not be a very good one, but 3.2 will show how
this can be used in real life.
[SCREEN] [SCREEN]
[SCREEN] [SCREEN]
CO.31 DEVICE=c:\bin\BOOT.SYS /T5 /P
DEVICE=BOOT.A /D2 {A}
DEVICE=TOP Do you need a RAM disk?
DEVICE=BOOT.1 no
DEVICE=BOOT.2 yes, RAM disk
{a}
DEVICE=BOOT.A /T {A2A}
DEVICE=TOP What size RAM disk do you need?
DEVICE=BOOT.1 64K
DEVICE=c:\dos\VDISK.SYS size=64 sector=512 dir=64
DEVICE=BOOT.2 128K
DEVICE=c:\dos\VDISK.SYS size=128 sector=512 dir=64
{b}
DEVICE=BOOT.B {A2B}
DEVICE=TOP Do you want COMMAND.COM to be
DEVICE=TOP copied to the RAM disk?
DEVICE=BOOT.1 yes
DEVICE=BOOT.SET COPY_CC=Y
BOOT.SYS - 25 - Version 1.42
DEVICE=BOOT.2 no
{c}
DEVICE=BOOT.Z
{d}
DEVICE=BOOT.B /D1 {B}
DEVICE=TOP Do you need ANSI.SYS?
DEVICE=BOOT.1 no
DEVICE=BOOT.2 yes, ANSI.SYS
DEVICE=c:\dos\ANSI.SYS
DEVICE=BOOT.END
AU.31 c:\bin\BOOT SET
IF ERRORLEVEL 10 GOTO not_installed
IF "%COPY_CC%" == "Y" COPY c:\COMMAND.COM d:
IF "%COPY_CC%" == "Y" SET COMSPEC=d:\COMMAND.COM
c:\bin\BOOT CLEAR {remove the variable definition}
GOTO done
:not_installed
ECHO BOOT.SYS is not installed!
:done
PATH c:\dos;c:\bin
The command line switch /P ( /Path) enables the display of the
menu identifiers in the lower right corner of each menu. These
are the same strings that are shown as comments in the CONFIG.SYS
listing above.(1) /P is useful for support and debugging pur-
poses. Calling BOOT.COM from the DOS command line without any
parameters will display a list of all the menus that were
displayed and the corresponding choices.
--------------------
1 The menu identifier describes how you got to the current menu:
e.g. 'A2B' means
- you have chosen option 2 on the first first-level menu ('A')
- this option has at least two submenus, and you have already
made your choice on the first submenu (the 'A2A' menu)
- you are now looking at the second submenu ('A2B').
A level number is displayed along with the menu identifier ('A'
is a level-1 menu, 'A2A' and 'A2B' are at level 2).
BOOT.SYS - 26 - Version 1.42
If the user selects option 1 (no RAM disk) in menu {A} then
everything will be as in example 2.1; but if option 2 is
selected, a submenu(1) to specify the size of the RAM disk will
be presented as well as another submenu to specify whether COM-
MAND.COM should be copied to the RAM disk.
Let us now examine more closely what happens when the user
selects option 2 (keeping in mind what was said at the end of the
Level 2 chapter):
First, any commands at {a} are executed. Then menu {A2A} is dis-
played with no timeout, so the user must make a selection before
the execution continues. At {b} there could be a BOOT.0 line and
the associated commands would be executed whenever the user
selects option 2 in menu {A}. Then menu {A2B} is processed and
depending on the choice the variable is set or not. At {c} again
there could be a BOOT.0 line (like {b}). Any further commands at
{d} are executed (like {a}), and finally processing continues
with menu {B}.
The role of the BOOT.Z line should now become clear: every
sequence of menus (starting with BOOT.A , BOOT.B , etc.) is ter-
minated with a BOOT.Z . For the top level menu sequence BOOT.Z is
not required because BOOT.END takes its place, and BOOT.SYS can
do better checking of nesting errors if you omit BOOT.Z .
In AUTOEXEC.BAT the variable is copied to the environment (if it
is defined at all) and then erased when it is no longer used.
Theoretically there is no limit to the nesting level, but
BOOT.SYS cannot display more than 25 menus, so you cannot go
deeper than 25.
Although BOOT.SYS cannot display more than 25 menus per run (most
users probably would not put up with more than 5 menus anyway),
the number of menus in the entire menu tree may be much larger
than that. DOS enforces some upper limit on the size of CON-
FIG.SYS though, probably 64K bytes.
The final example shows a more [SCREEN]
involved setup. I used to present
my personal setup here, but it
has become too complex by now...
--------------------
1 The contents of option 2 are indented to illustrate the submenu
relationship.
Note: If your editor replaces series of spaces with tabs, then
columns may not align properly on the screen, especially if you
use indentation.
BOOT.SYS - 27 - Version 1.42
[SCREEN] [SCREEN]
CO.32 break=off
buffers=32
country=041,437,c:\dos\country.sys
files=20
lastdrive=H
stacks=9,128
shell=c:\dos\command.com c:\dos /p /e:300
DEVICE=C:\BOOT\BOOT.SYS /L18 /U^\ /CX2F
DEVICE=BOOT.A /T0 /CX4F /D1
DEVICE=TOP
DEVICE=TOP
DEVICE=TOP ^Select any special boot-up options:
DEVICE=TOP
DEVICE=BOOT.1 >>> \NONE <<<
DEVICE=BOOT.2 \UNIFORM\ - ^Access non-\DOS\ diskettes
device=c:\ut\uniform\uniform.sys at+ dr96=0
DEVICE=BOOT.3 ansi.sys
device=c:\dos\ansi.sys
DEVICE=BOOT.4 ^Insert an additional device driver
DEVICE=BOOT.EDIT {see the next section}
DEVICE=DUMMY FILLER DUMMY FILLER DUMMY FILLER
DEVICE=BOOT.5 ^Alt-^Ctrl-^Del = cold boot
DEVICE=BOOT.OPTION BOOTASSIST {see the next section}
DEVICE=BOOT.SET BOOTASSIST=COLD
DEVICE=BOOT.B /T5
DEVICE=TOP
DEVICE=TOP
DEVICE=TOP ^Select operating environment:
DEVICE=TOP
DEVICE=BOOT.0
DEVICE=BOOT.SET CED=Y {default}
DEVICE=BOOT.1 \DOS\ with 1^M^B disk cache
DEVICE=BOOT.SET C386=MAX
device=c:\386max\386max.sys ext=1384
device=c:\386max\386load.sys prog=c:\dos\cache.exe 1024
ON /EXT /Q
buffers=5
device=c:\386max\386load.sys size=4216
prog=c:\dos\vdisk.sys 360 512 64 /E:8
DEVICE=BOOT.2 \DOS\ without disk cache
DEVICE=BOOT.SET C386=MAX
device=c:\386max\386max.sys ext=360
device=c:\386max\386load.sys size=4216
prog=c:\dos\vdisk.sys 360 512 64 /E:8
BOOT.SYS - 28 - Version 1.42
DEVICE=BOOT.3 \DESQ\view 386
DEVICE=BOOT.SET C386=QEMM
DEVICE=BOOT.SET DV=Y
DEVICE=BOOT.SET CED= {erase default variable}
DOS=LOW {MS/PC-DOS 5.00 only}
DEVICE=BOOT.A /T5 /D2
DEVICE=TOP
DEVICE=TOP
DEVICE=TOP ^Select \DESQ\view configuration:
DEVICE=TOP (size of 1st window, others 12k^B less)
DEVICE=TOP
DEVICE=BOOT.1 ^Standard: 535^K^B free
device=c:\dv\qemm\qemm386.sys extmem=360
device=c:\dos\vdisk.sys 360 512 64 /E:8
DEVICE=BOOT.2 ^Extended: 546^K^B free
device=c:\dv\qemm\qemm386.sys extmem=360 ram rom
device=c:\dos\vdisk.sys 360 512 64 /E:8
DEVICE=BOOT.3 ^Huge: 639^K^B free (no graphics!)
DEVICE=BOOT.SET NOEGA=Y
DEVICE=REM use LOADHI NOEGA
device=c:\dv\qemm\qemm386.sys extmem=360 ram rom
include=A000-B7FF
device=c:\dos\vdisk.sys 360 512 64 /E:8
DEVICE=BOOT.Z
DEVICE=BOOT.4 ^Windows 386
DEVICE=BOOT.SET C386=HIMEM
device=c:\dos\himem.sys
device=c:\dos\smartdrv.sys 1024
device=c:\dos\vdisk.sys 360 512 64 /E:8
DEVICE=BOOT.SET CED= {erase default variable}
DEVICE=BOOT.5 ^Turbo ^Debugger 386 and ^M^S-^D^O^S
DEVICE=BOOT.SET C386=TD
device=c:\tc\td\tdh386.sys
DEVICE=BOOT.6 plain ^D^O^S
device=boot.option free {see the next section}
DEVICE=REM Note: BOOT.COM will return ERRORLEVEL 10
DEVICE=BOOT.END
DOS=HIGH {MS/PC-DOS 5.00 only}
BOOT.SYS - 29 - Version 1.42
AU.32 path c:\dos;c:\bin;c:\ut;c:\wp\lm
C:\BOOT\BOOT SET >NUL:
if errorlevel 10 goto plain_dos
if not "%bootassist%" == "" C:\BOOT\BOOT BOOTASSIST
%BOOTASSIST% >nul:
set bootassist= {don't need this anymore}
quikkey 24
if "%c386%" == "MAX" goto max
if "%c386%" == "QEMM" goto qemm
c:\dos\plus\kbext
if "%ced%" == "Y" c:\ut\ced -b500,200,300,128,128,128
-fc:\ut\ced.cfg
goto cont
:max
c:\386max\386load size=1052 envname prog=c:\dos\plus\kbext
if "%ced%" == "Y" c:\386max\386load size=9892 envname
prog=c:\ut\ced
-b500,200,300,128,128,128
-fc:\ut\ced.cfg
goto cont
:qemm
if "%noega%" == "Y" c:\dv\qemm\loadhi c:\dv\qemm\noega
set noega= {don't need this anymore}
c:\dv\qemm\loadhi c:\dos\plus\kbext
if "%ced%" == "Y" c:\dv\qemm\loadhi c:\ut\ced
-b500,200,300,128,128,128
-fc:\ut\ced.cfg
goto cont
:cont
if "%WIN%" == "Y" cd c:\win
if "%WIN%" == "Y" win
if "%DV%" == "Y" cd c:\dv
if "%DV%" == "Y" dv
:plain_dos
The first menu is for 'special needs': it has a timeout of 0 and
defaults to an empty option. To use non-DOS diskettes or ANSI.SYS
just press a key (e.g. the space bar) immediately after the two
beeps at boot-up. This displays the 'special needs' menu, which
appears in red to distinguish it from the normal green menus. You
also might put in here device drivers for your scanner, your
CD-ROM drive, or any other devices that you do not use fre-
quently.
BOOT.SYS - 30 - Version 1.42
The BOOT.EDIT and BOOT.OPTION lines will be explained in the next
section.
The second menu (which is usually the first to be displayed) lets
you select the operating environment to use:
- MS-DOS with disk cache
- MS-DOS without disk cache (more EMS memory)
- DESQview 386
- Windows
- Turbo Debugger with 386 support
Depending on which operating environment is selected, one of four
mutually exclusive 386 control programs are used, and all of them
have to be loaded from CONFIG.SYS; without BOOT.SYS you would
need at least 4 different versions of CONFIG.SYS. Some of the 386
control programs support loading other device drivers and TSRs
into 'high DOS memory' above the 640K, so AUTOEXEC.BAT is
affected as well. This menu could also be used to select other
command processors like 4DOS, *nix-like shells, or other replace-
ments for COMMAND.COM.
The DESQview option has a submenu to choose between three differ-
ent QEMM386 setups; each option gives different amounts of memory
available, along with other advantages and disadvantages (e.g.,
an additional 96K bytes of memory can be made available for each
window if you do not want to use any graphics programs).
The sample AUTOEXEC.BAT demonstrates nicely how unrelated aspects
of your system configuration can be defined in a modular way,
e.g. while this CONFIG.SYS always runs Windows with HIMEM, that
is not reflected in AUTOEXEC.BAT; if you wish to start running
Windows under QEMM you only need to change CONFIG.SYS.
Controlling the DOS= Command in MS/PC-DOS 5.00
General Introduction
MS/PC-DOS 5.00 has introduced a new command to CONFIG.SYS:
DOS=HIGH|LOW,UMB|NOUMB
The DOS= command defines two unrelated properties of your system
configuration that are discussed separately:(1)
--------------------
1 Please refer to the MS-DOS Reference for more information on
DOS= .
BOOT.SYS - 31 - Version 1.42
-> DOS=HIGH|LOW
MS/PC-DOS 5.00 has the ability to load most of itself into the
so-called High Memory Area (HMA).(1) The DOS default is DOS=LOW ,
i.e. not use the HMA, but usually you will want DOS to go high
and give you additional conventional memory in the first 640K.
However, there are circumstances when DOS=LOW might be better:
- Some programs are incompatible with DOS=HIGH , e.g. some ver-
sions of Borland's Turbo Debugger 386.
- Some programs can make better use of the HMA than DOS and you
gain more by letting them use the HMA instead of DOS, e.g.
DESQview-386.
BOOT.SYS lets you have HIGH and LOW configuration side by side,
but some special care is needed as explained below.
-> DOS=UMB|NOUMB
MS/PC-DOS 5.00 supports loading device drivers and resident pro-
grams (TSRs) into the so-called Upper Memory Blocks (UMBs).(2)
386MAX and QEMM386 have had this capability for a long time, and
they provide their own utilities for loading high; by default
( DOS=NOUMB ) DOS does not interfere.
On the other hand, DOS=UMB instructs DOS to allocate the UMBs as
soon as they become available and to integrate them into its own
memory management.(3) This has two consequences:
- You can use the DEVICEHIGH and LOADHIGH commands that are
built into DOS (however these are not as powerful and versa-
tile as the ones included with 386MAX or QEMM386).
- DOS can make free UMBs available for use by normal
application programs (not just device drivers and TSRs). At
present 386MAX and QEMM386 do not support this.
--------------------
1 The HMA is the first 64K-16 bytes of extended memory (80286
processor and up), and it is defined in the so-called eXtended
Memory Specification (XMS). Every memory manager that adheres to
the XMS standard provides the HMA, e.g. HIMEM.SYS, 386MAX, and
QEMM386.
2 UMBs are regions in the address range between 640K and 1M on
computers equipped with an 80386 processor or higher, that are
not used for any other purpose. A suitable memory manager (a
so-called UMB provider, e.g. 386MAX, QEMM386, or HIMEM and EMM386
as included with MS/PC-DOS 5.00) can map extended memory into
these regions and make them usable for device drivers and resi-
dent programs.
3 DOS=UMB is the only way to go if you use HIMEM.SYS and
EMM386.EXE that are provided with MS/PC-DOS 5.00.
BOOT.SYS - 32 - Version 1.42
Some time in the future the third-party memory managers will
probably support the DOS memory management and DOS=UMB will work
for everything, but until then BOOT.SYS lets you have UMB and
NOUMB configurations side by side.
BOOT.SYS and the DOS= Command
The DOS= command creates some intricate problems for BOOT.SYS
because it is prescanned, i.e. DOS looks throughout CONFIG.SYS
for DOS= commands and sets itself up accordingly before BOOT.SYS
receives control. BOOT.SYS still manages to give you complete
freedom in your configurations, but some special care is
required.
During the DOS prescan for DOS= , the last instance of HIGH / LOW
and UMB / NOUMB , respectively, is recorded for use by DOS, no
matter where the DOS= line(s) is/are located. These settings are
used for loading the device drivers above BOOT.SYS(1) and as
defaults for those BOOT.SYS configurations that do not specify
anything else. To let BOOT.SYS control HIGH / LOW , DOS=HIGH must
be active! We recommend that you put DOS=HIGH below BOOT.END .(2)
When you select a certain configuration, BOOT.SYS wipes out all
the commands that are not part of the selected configuration;
then it scans the remaining lines between BOOT.SYS and BOOT.END
for DOS= commands. Just like DOS, BOOT.SYS uses the last instance
of each of the two properties and the boot process continues with
these new settings.
It may be helpful to record the DOS= settings in environment
variables for later use in AUTOEXEC.BAT and possibly other batch
files.
DOS= Summary
To control the DOS= command use the following procedure:
1. Put the line
DOS=HIGH,NOUMB
--------------------
1 I.e. if DOS=HIGH is set, and an XMS driver is loaded ahead of
BOOT.SYS and the XMS driver provides the HMA (high memory area),
then DOS will take the HMA and load high immediately; likewise,
if DOS=UMB is active and some upper memory blocks become avail-
able, then DOS will take them immediately.
2 ... and of course no DOS=LOW below it.
BOOT.SYS - 33 - Version 1.42
at the bottom of CONFIG.SYS (below BOOT.END ) to set the
defaults to HIGH and NOUMB .(1)
2. In the configurations that need UMB , insert:
DOS=UMB
DEVICE=BOOT.SET UMB=Y {optional}
3. In the configurations that need LOW , insert:
DOS=LOW
DEVICE=BOOT.SET LOW=Y {optional}
Technically, when you specify DOS=LOW , BOOT.SYS allocates
the HMA and DOS is forced low, just as if the HMA was not
available at all. The HMA is automatically released the
first time you call BOOT.COM.
If you are using HIMEM.SYS, there is one caveat: The version
of HIMEM.SYS that comes with MS/PC-DOS 5.00 has the ability
to load itself into the HMA if DOS=HIGH is specified, but it
grows considerably when DOS is forced low by BOOT.SYS.(2) To
avoid wasting precious RAM, either use one of the more ver-
satile third-party 386 control programs (e.g. QEMM386 or
386MAX) instead of HIMEM.SYS or use a different version of
HIMEM.SYS (e.g. the one that comes with Microsoft Windows
3.0) for the 'low' configurations.
BOOT.SYS Extensions
This chapter explains extensions to BOOT.SYS that go beyond the
menu system.
BOOT.EDIT
You can edit individual lines on the fly while booting up by
including the following lines in CONFIG.SYS (between the BOOT.SYS
and BOOT.END lines):
DEVICE=BOOT.EDIT
{any standard CONFIG.SYS command}
--------------------
1 HIGH is required by BOOT.SYS, and NOUMB is recommended because
it is the standard DOS default, i.e. if you specify neither UMB
nor NOUMB you should get NOUMB .
2 Use MEM /C to get information about the sizes of your resident
programs and device drivers.
BOOT.SYS - 34 - Version 1.42
[SCREEN]
When the menu option containing
these lines is selected, BOOT.SYS
displays a screen with a box that
lets you edit the text to the right
of the equal sign. The keyword to
the left of the equal sign
( DEVICE , FILES , etc.) and the
equal sign are required and cannot
be edited.
All the usual editing keys are supported; a summary will be
displayed on the screen. There is one restriction: the length of
the line cannot be increased!(1)
When you press <Enter>, your edits are saved and execution con-
tinues. To ignore this line and continue, press <Esc> instead.
You may put some explanatory text to the right of BOOT.EDIT and
BOOT.SYS will display your text instead of the standard message
explaining the edit keys. If you need more than one line you can
use as many BOOT.EDIT lines as you like - it works exactly like
DEVICE=TOP . Example:
DEVICE=BOOT.EDIT You may experiment with different
DEVICE=BOOT.EDIT BUFFERS=n values (<Esc> = ignore):
BUFFERS=020
BOOT.OPTION FREE
If the line
DEVICE=BOOT.OPTION FREE
--------------------
1 There are several ways to get around this limitation:
- Insert spaces into the line, e.g. between the name of the
device driver and the parameters (DOS discards any spaces to
the left or immediately to the right of the equal sign, and
most text editors do not save spaces at the end of the line).
- Insert dummy text that you can erase while editing the line.
- Insert normal spaces at the end of the line followed by a
single 'hard space'; this is the character with the ASCII
value 255, and it can usually be entered by holding down the
Alt key, entering 255 on the numeric keypad, and releasing
the Alt key.
Some of these work-arounds may not work with all versions of DOS.
BOOT.SYS - 35 - Version 1.42
is part of at least one of the options you select, then BOOT.SYS
will not stay resident as a device driver.(1) This lets you
create a bare-bones DOS option for checking out TSR conflicts and
the like. The resident size of BOOT.SYS is so small (typically
less than 200 bytes) that FREE is not worth it in regular use.
If BOOT.SYS does not stay resident, the variables you may have
set in CONFIG.SYS are lost and BOOT.COM has no way to copy them
to the environment - it cannot even tell that BOOT.SYS has done
its work! In that case it displays an error message indicating
that BOOT.SYS is not loaded and returns an ERRORLEVEL code of 10,
which you can use to avoid loading TSRs in AUTOEXEC.BAT.
An example of this option is part of the last sample configura-
tion above.
BOOT.OPTION BOOTASSIST
There exist system configurations and software packages that make
your system crash when you hit the Alt-Ctrl-Del key combination.
BOOTASSIST lets you modify the behavior of Alt-Ctrl-Del, and it
may be of help in your particular situation. To set it up
requires two steps; the first is to include the line
DEVICE=BOOT.OPTION BOOTASSIST
somewhere between BOOT.SYS and BOOT.END.(2) Executing this line
slightly increases the resident size of BOOT.SYS but does not
change anything else. The second step is to activate BOOTASSIST
by executing one of the following commands from the DOS prompt or
in a batch file (possibly AUTOEXEC.BAT):
BOOT BOOTASSIST WARM
BOOT BOOTASSIST COLD
BOOT BOOTASSIST INHIBIT
--------------------
1 There may be versions of DOS with which this does not work. Any
reports are appreciated!
2 You can put it wherever a normal CONFIG.SYS command is accept-
able, either as part of an option, or between BOOT.Z and BOOT.END
to have it available all the time.
BOOT.SYS - 36 - Version 1.42
Each of these commands does to Alt-Ctrl-Del what its parameter
implies: WARM is just the normal boot process, COLD is like
turning the power off and back on, and INHIBIT disables Alt-Ctrl-
Del. If you are having problems with Alt-Ctrl-Del, one of these
command may help, but there's no guarantee! Your chances are best
if you load all your resident utilities before activating BOOT-
ASSIST.(1)
The remainder of this section is a technical explanation of how
BOOTASSIST works. The resident part is a keyboard interrupt (09h)
handler, which is inserted at the head of the handler chain by
one of the commands above.(2) Being the first in the chain it can
usually perform the required action which may or may not work
with your setup. If you want to load another resident utility
program that hooks up to the same interrupt, you can unhook the
BOOTASSIST handler by issuing the command
BOOT BOOTASSIST OFF
and put it back at the head of the chain after loading the TSR.
If the INT 09h vector does not point to the BOOTASSIST handler,
it cannot be unhooked anymore and you get an error message indi-
cating that another program has grabbed the vector, including the
new address.
If BOOTASSIST does not work properly and turning it OFF does not
generate an error message, then BOOTASSIST cannot solve your par-
ticular configuration problem.
BOOT.OPTION EXTMON for Laptops
When you use BOOT.SYS with a laptop computer and you have an
external monitor attached, then BOOT.SYS will usually come up on
the internal monitor. This is a minor inconvenience which is
addressed by EXTMON: EXTMON switches to the external monitor.
However, because there are no standards for this function among
the different laptop manufacturers (and sometimes not even within
a product line), it has to be implemented separately for each
system.
--------------------
1 If you use one of the KEYBxx keyboard drivers to get a non-U.S.
keyboard layout (national language support), you must activate
BOOTASSIST after KEYBxx.
2 Warning: SideKick insists on being the first in the chain and
thus defeats this scheme.
BOOT.SYS - 37 - Version 1.42
At the time of this writing support is implemented for Compaq
portable and laptop computers only. Support for other computers
may be added in the future if there is interest and the relevant
information is available.
The syntax for EXTMON is
DEVICE=BOOT.OPTION EXTMON <type>
where <type> is machine-specific and can be taken from the fol-
lowing table:
Manufacturer <type> Computer Models
Compaq COMPAQ all Compaq portables and laptops
all COLOR standard color screen (mode 3)
all MONO standard monochrome screen (mode
7)
There are two ways of handling EXTMON, depending on how smart
your computer is: If it is smart, it will not try to switch to an
external monitor when there is none. In that case you can use the
following lines in CONFIG.SYS, which will make BOOT.SYS use the
right monitor everytime:
DEVICE=c:\bin\BOOT.SYS
DEVICE=BOOT.A {optional}
DEVICE=TOP ...
DEVICE=BOOT.0
DEVICE=BOOT.OPTION EXTMON <type> {<type> as above}
DEVICE=BOOT.1 ...
...
DEVICE=BOOT.END
If your computer cannot tell whether an external monitor is
attached or not, you must use a different setup:
DEVICE=c:\bin\BOOT.SYS
DEVICE=BOOT.A /D1 /T10
DEVICE=TOP Which monitor do you want to use?
DEVICE=BOOT.1 Internal
DEVICE=BOOT.2 External
DEVICE=BOOT.OPTION EXTMON <type> {<type> as above}
BOOT.SYS - 38 - Version 1.42
DEVICE=BOOT.B
DEVICE=TOP ... {this is your menu}
DEVICE=BOOT.1 ...
...
DEVICE=BOOT.END
This will display an additional menu at the very beginning where
you can select the monitor to use. After a /Timeout of 10 seconds
BOOT.SYS will select the /Default 1, the internal screen. Press-
ing the '2' key within that time causes it to switch to the
external monitor for the next menu. This can be done even without
seeing the menu A, and menu B will be displayed right where you
want to see it.
Warning: We strongly advise you to use a bootable diskette to try
out the EXTMON function! If the switch does not work properly,
your internal screen may go blank, and you will have no way of
editing the CONFIG.SYS file on the disk you used to boot up!
BOOT.OPTION COLOR
Some people prefer more colorful screens to the white on black
used by DOS. This option lets you specify any color (with the
same numbers as for the /C switch on the BOOT.SYS command line),
which will be used immediately after the BOOT.SYS menu.(1) How-
ever, some device drivers use their own colors, and there is
nothing that BOOT.SYS could do to change that. Example:
DEVICE=BOOT.OPTION COLOR X1F {bright white on blue}
BOOT.COM Command Line Parameters
The syntax of BOOT.COM is
BOOT <parm>
where <parm> is one of the following:
SET
Copy the BOOT.SYS variables defined in CONFIG.SYS into the
DOS environment and display them.
--------------------
1 A value of 0 can be used to change the color to black on black,
effectively hiding the messages generated from CONFIG.SYS.
Executing CLS from AUTOEXEC.BAT or from the command line restores
the default color. Warning: This is not recommended, because in
case of a problem you will not be able to see any error messages,
and you may have to boot from a diskette and change the color to
find out what the problem is.
BOOT.SYS - 39 - Version 1.42
CLEAR
Erase the BOOT.SYS variables from the DOS environment to free
up space.
no parameter
BOOT.COM will display something similar to the following
example:
The user selected the following menu choices:
A1
B3
B3A1
This would mean that when you booted up your PC, you selected
option 1 on the first menu (menu A) and option 3 on the sec-
ond menu (menu B); that option apparently has a submenu
(menu B3A) and you selected option 1.
If there is only one menu, then BOOT.COM will also set the
ERRORLEVEL (see below).
WARM
Do a warm boot (like Alt-Ctrl-Del).
COLD
Do a cold boot (like turning the power switch off and on).
WARM and COLD accept an optional switch ( /O ) for compati-
bility with very /Old BIOS versions.
BOOTASSIST <p>
See the chapter on BOOTASSIST.
VERSION
Display whether this is a registered or an evaluation ver-
sion, and how to register it.
<menu_selector>(1) {This is obsolete and included for backward
compatibility only!}
This form is used for retrieving the user's choices (usually
in AUTOEXEC.BAT) after CONFIG.SYS has been processed. The
menu selector is the string of letters and digits that
uniquely identifies a menu.(2) Expanding on the example 3.1
above, BOOT b would display 3 and set the DOS ERRORLEVEL(3)
--------------------
1 If there is only one menu, then the <menu_selector> is
optional.
2 If you specify /P on the BOOT.SYS line in CONFIG.SYS the menu
selector (and the nesting level) is displayed in the lower right
corner of each menu.
3 Be sure to always test ERRORLEVELs in descending order and
immediately after the call to BOOT.COM!
BOOT.SYS - 40 - Version 1.42
to 3, and BOOT b3a would display/return 1. Of course you must
always start testing with the top level, and only when you
know that BOOT b returns 3, you can ask for BOOT b3a .
If BOOT.SYS is not installed or did not stay resident,
BOOT.COM displays an error message and returns an ERRORLEVEL
of 0.
HELP
Display a summary of this list.
PAUSE.SYS, a Debugging Aid
You may have some very sophisticated setups by now, and if a
certain configuration does not work right it can be quite chal-
lenging to find the problem, especially because the messages from
the various drivers scroll by very quickly on fast machines.
PAUSE.SYS provides various functions in CONFIG.SYS that may be
helpful; the primary function is similar to what the PAUSE com-
mand does in a batch file:
DEVICE=c:\bin\PAUSE.SYS any text you like
will display the text and wait for you to press any key to
continue. The text is always translated to lower case; to get an
upper case character, preceed the character with a caret ( ^ ),
and to display a caret, write two carets.
PAUSE.SYS accepts some command line switches that change its
behavior:
DEVICE=c:\bin\PAUSE.SYS /C {clear the screen}
DEVICE=c:\bin\PAUSE.SYS /P {do a PrintScreen}
DEVICE=c:\bin\PAUSE.SYS /O any text {output only, no wait}
DEVICE=c:\bin\PAUSE.SYS /Exxx {ESC sequence}
All of these options suppress the wait for a key. The last option
is intended to send escape sequences to ANSI.SYS or a replacement
with similar capabilities; the following lines would change the
screen color to bright white on blue and clear the screen, pro-
vided that ANSI.SYS is already loaded:
DEVICE=c:\bin\PAUSE.SYS /E[1;37;44m
DEVICE=c:\bin\PAUSE.SYS /E[2^J {upper case J}
BOOT.SYS - 41 - Version 1.42
To get a summary of the functions of PAUSE.SYS, just
TYPE PAUSE.SYS
from the DOS prompt.
Closing Remark
By now you have versions of CONFIG.SYS and AUTOEXEC.BAT that are
much more sophisticated than usual. Unfortunately there is a
growing trend in the software industry to provide automated
installation programs that read and update your system configura-
tion files, and this leads to some problems:
- There are installation programs that will boldly overwrite
your configuration files or make other undesirable changes.
- Others will try to make sense of the current contents and
then change to whatever their programs preferences are; they
will certainly not be able to handle CONFIG.SYS and AUTOEX-
EC.BAT correctly when BOOT.SYS is installed.
- A third category of installation programs will examine the
contents of CONFIG.SYS and abort the installation if they
find something offensive. The prime examples are
MS Windows 386 and MS Windows 3.0, which refuse to install if
they find a mention of another 386 control program in CON-
FIG.SYS.
- 386MAX and QEMM386 are in a class all by themselves: they
come with installation programs called MAXIMIZE/OPTIMIZE that
will change your CONFIG.SYS and reboot several times to find
a good system configuration. These installation programs can-
not handle your sophisticated CONFIG.SYS and they will prob-
ably end up in a 'crash loop', forcing you to boot from a
floppy disk to recover.(1)
There are two possible cures to this situation: The first is to
keep a duplicate of CONFIG.SYS and AUTOEXEC.BAT on hand, so you
can examine the changes and integrate them at the proper places.
In fact, keeping current backups is always a good idea!
The second cure is to patch IBMBIO.COM and COMMAND.COM to use
other names for CONFIG.SYS and AUTOEXEC.BAT. Warning: This is not
for the faint of heart! If you feel somewhat uncomfortable doing
this, then please do not even try! The procedure is deliberately
not explained here, because if you do not have any experience
--------------------
1 For information on how to run MAXIMIZE/OPTIMIZE, please look at
"Answers to Common Question, How can I run...".
BOOT.SYS - 42 - Version 1.42
with patching files, you should not make your first steps in this
field with your system files.(1) - Now to the advantage of this
patch: You will never have to worry about automated installation
programs anymore, because these will assume that you do not have
either CONFIG.SYS nor AUTOEXEC.BAT, they will usually create
these files, and you can go back and look calmly at how the
system should be set up for the program in question and make any
necessary changes yourself.
Answers to Common Questions
Why do I get error messages like 'Unrecognized command' from CON-
FIG.SYS?
With versions of DOS prior to 4.00, commands that have fewer than
three characters to the right of the equal sign cannot be wiped
out cleanly, and DOS will give an error message similar to 'Un-
recognized command'.
This can usually be fixed by appending ' x' to the command in
question; thus 'LASTDRIVE=F' would become 'LASTDRIVE=F x' and
'BREAK=ON' would become 'BREAK=ON x'. Commands with numbers like
'FILES=20' accept leading zeros, like 'FILES=020'. I do not know
how universal these work-arounds are - you will have to experi-
ment if they work with your version of DOS.
My choice is not recognized in AUTOEXEC.BAT...
If you are still using the old ERRORLEVEL interface in AUTOEX-
EC.BAT (not documented anymore), make sure that all of your IF
ERRORLEVEL tests start with the highest values first.
If you are using the environment variable interface, please turn
to the section <<Trouble-shooting Variable Problems>>
I get an error message from BOOT.SYS...
If BOOT.SYS finds an error in your CONFIG.SYS file, it tries to
display a useful error message and aborts. Aborting implies wip-
ing out all the commands between BOOT.SYS and BOOT.END . BOOT.COM
then returns an ERRORLEVEL code of 0 and displays an error
message, too.
--------------------
1 A second word of warning: If you patch your system files and
make a bootable diskette, the diskette will get copies of your
patched system files, so you must use the new names for CON-
FIG.SYS and AUTOEXEC.BAT on the diskette as well.
BOOT.SYS - 43 - Version 1.42
Will BOOT.SYS get along with automated installation programs that
modify CONFIG.SYS and/or AUTOEXEC.BAT?
The answer is NO! Please read the chapter "Closing remark" in the
Installation section for more information.
How can I run the 386MAX/QEMM386 installation programs (MAXIMI-
ZE/OPTIMIZE) with BOOT.SYS?
To run MAXIMIZE/OPTIMIZE do the following:
- Rename your CONFIG.SYS and AUTOEXEC.BAT files to something
else.
- Create new CONFIG.SYS and AUTOEXEC.BAT files and include
only those commands that you wish to use for your new
386MAX/QEMM386 configuration (don't include BOOT.SYS!).
- Run MAXIMIZE/OPTIMIZE.
- Merge the new CONFIG.SYS and AUTOEXEC.BAT into the old ver-
sions as your new 386MAX/QEMM386 option.
If you patched IBMBIO.COM and COMMAND.COM to use different names
for CONFIG.SYS and AUTOEXEC.BAT, then you must undo those patches
or restore the original files, because MAXIMIZE/OPTIMIZE will use
the standard file names.
BOOT.SYS doesn't work right with the DOS= command in
MS/PC-DOS 5.00...
Please read the chapter on DOS= in the <<Installation>> section.
BOOT.COM says that BOOT.SYS is not installed...
There can be two reasons for this error message:
- BOOT.SYS is not installed in your CONFIG.SYS or failed for
some reason (usually with an appropriate error message).
- You are using BOOT.OPTION FREE, and BOOT.SYS did not stay
resident; consequently BOOT.COM has no way of finding it now.
The only purpose of BOOT.OPTION FREE is to define a boot
option that will start DOS without any resident programs
(like booting from the original DOS distribution disk), e.g.
for experimenting with TSR conflicts, and it should not be
used under normal circumstances.
Can I use all characters to create boot-up menus?
Yes, to create menus you may use any of the characters of the PC
character set (including the box and foreign characters) except
for NUL, HT, BS, LF, CR, and Ctrl-Z. The BEL character (Ctrl-G)
sounds the bell and displays a space.
BOOT.SYS - 44 - Version 1.42
I can't get the columns to align properly...
If your editor converts multiple spaces to tabs then the text on
the screen may not align properly. Your best bet is to set the
editor so that it will not compress spaces to tabs. - However,
everything should be fine if the tabs are on every 8th column
(standard for DOS) and there are no (or a multiple of 8) spaces
to the left of TOP or BOOT.n .
Possible problem with BREAK=ON
If you use the BREAK=ON command in your CONFIG.SYS file you
should make sure that BREAK really is enabled by entering BREAK
at the DOS prompt. If BREAK is off, try moving the BREAK=ON com-
mand below the BOOT.END line.
To avoid this problem altogether you can enable BREAK later in
AUTOEXEC.BAT with the command BREAK ON .
BOOT.SYS doesn't work right with XMAEM.SYS in PC-DOS 4.0x...
PC-DOS 4.0x and probably later versions process the XMAEM.SYS
driver in a special way: it is loaded before any other part of
CONFIG.SYS is processed. Unfortunately this makes it impossible
for BOOT.SYS to control that driver because XMAEM.SYS is already
installed when BOOT.SYS runs.
A work-around to this problem is to rename XMAEM.SYS to some
other name (like XMAEMX.SYS ) and to use that name in the DEVICE=
command. Load the renamed driver early in your CONFIG.SYS, defi-
nitely before XMA2EMS.SYS .
I have a certain configuration where Alt-Ctrl-Del crashes the
system and forces me to hit the big red switch. Can BOOT.SYS
help?
Yes, BOOT.SYS may be able to help. Follow the directions in the
BOOTASSIST chapter of the installation section. If this does not
help you may still be able to re-boot from the command line (see
BOOT.COM Command Line Parameters).
BOOT.SYS - 45 - Version 1.42
The Windows installation program (and maybe others as well) com-
plain that I have a 386 memory manager installed...
The installation program examines the contents of CONFIG.SYS and
when it finds a mention of 386MAX, QEMM386, or similar programs
it complains, because Windows has its own 386 memory management
and may have problems with other 386 control programs. The conse-
quences of this for you as a user of BOOT.SYS are very minor:
just set up a special BOOT.SYS menu item specifically for
Windows, possibly one for each mode.
The quickest way to get Windows installed is to rename CONFIG.SYS
to something else - the installation program will run without
problems, even with one of the offensive programs loaded. It will
create a new CONFIG.SYS containing all the commands it expects to
have in the BOOT.SYS Windows option of your real CONFIG.SYS file.
Look at configuration 32 for an example.
Please consult the chapter "Closing remark" in the installation
section for some general information concerning automated instal-
lation programs.
What can I do if BOOTASSIST does not work?
Try turning BOOTASSIST OFF; if this is successful then BOOTASSIST
will not work with your configuration and nothing can be done
about it. If you get an error message, please refer to the BOOT-
ASSIST chapter of the installation section.
BOOT.SYS - 46 - Version 1.42
Revision History
0.95 Beta release
0.96 Fixed /v in BOOT.COM
Fixed invalid parm error
1.00 First public release
1.01 Allow '-' along with '/' for command line switches
1.10 Documentation update, mention of ASP
1.20 Fixed minor bug that disabled /Timeout under some very
special timing circumstances.
Added /Spacing to BOOT.SYS.
Individual CONFIG.SYS lines can now be edited on the fly
while booting up.
New parameters to BOOT.COM:
- "HELP", "/H", "/?", "?" to get a short command summary
- "VERSION" to get version information
- "WARM" and "COLD" to re-boot from the command line or
from a batch file; "/O" switch for compatibility with
old BIOSes
New feature to make Alt-Ctrl-Del perform a cold boot, a
warm boot, or no boot (BOOTASSIST).
Option to keep BOOT.SYS from installing its tiny resident
part to get a minimal plain-DOS setup (may not work with
all DOS versions).
New international support channel on CompuServe.
Free CompuServe IntroPak for registered users.
New retail distribution channel in the U.S.A. through PsL.
1.21 Fixed bug that caused BOOT.SYS to hang when it was called
from the first line of CONFIG.SYS and running under DOS
4.xx.
Added new chapter "Quick Start" (Thanks, F.P.).
Added Home/End key support to the BOOT.SYS menus.
1.22 Fixed bug that caused BOOT.SYS to ignore the first switch
on the BOOT.A etc. lines under DOS 4.xx.
1.25 Documentation update.
New BOOT.OPTION EXTMON (Compaq: ok, Toshiba: needs test-
ing) (Thanks, B.F.).
New BOOT.OPTION COLOR.
New PAUSE.SYS utility.
Fixed several minor bugs.
1.26 Fixed a bug where BOOT.COM was reporting the wrong version
(Thanks, S.G.).
BOOT.SYS - 47 - Version 1.42
1.27 Fixed a bug in PAUSE.SYS (Thanks E.R.).
Minor documentation update.
If /T0 is specified and no key is pressed, then the menu
does not flash on and off.
If no key is pressed the Shareware screen is never dis-
played; this allows unattended boot-up without the risk of
waiting for a key to acknowledge the screen.
Several other internal tune-ups.
1.40 Full support for the new MS/PC-DOS 5.00 including the DOS=
command.
New BOOT.SET for defining environment variables from CON-
FIG.SYS.
New /N switch to set/clear NumLock (Thanks B.G.).
BOOT.OPTION EXTMON: new MONO and COLOR (Thanks O.M.).
New case toggle to complement case shift (/Uct).
Several other internal tune-ups.
Major documentation revision.
1.41 Fixed a bug in BOOT SET under DOS 3.20 (Thanks B.H.).
Fixed an old bug in BOOT.SYS /Cn (Thanks D.H.).
Several other internal tune-ups.
Minor documentation revision/correction.
1.42 Changed message that is displayed when BOOT.SYS cannot
control the DOS= command because it is loaded high.
Corrected file dates.